/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Servlet;

import clases.Comparacion;
import clases.Conexion;
import clases.Error_Data;
import clases.Querys;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author ad
 */
public class Grabador extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
           //por si entra sin loguearse al serlet
        HttpSession sesionOk = request.getSession();
            if (sesionOk.getAttribute("Usuario") == null) {
            response.setContentType("text/html;charset=UTF-8");
            response.sendRedirect("/ProyectoBases2/index.jsp");
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //que se selecciono
        String exportacompensacion = request.getParameter("tipo");

        Comparacion nueva=new Comparacion();
        Querys xs=new Querys();

        /*****************************************************************************************************************************
         *EN TODO EL PROCESO SE UTILIZARA
         * ARCHIVO1.TXT PARA ARCHIVOS DE COMPENSACIONES
         * ARCHIVO2.TXT PARA CHEQUES YA COMPENSADOS
         *****************************************************************************************************************************/
        /****
         * aqui entrar cuando deseamos exportar algun archivo para nuestro cliente
         **/
        if(exportacompensacion!=null)
        {
            Conexion nuevas=new Conexion();

            if(exportacompensacion.compareTo("Cheques_Compensados")==0)
            {
               String res=nuevas.regresar_ChequesCompensados();
               EscribirPagina("Seleccione el banco para exportar el archivo de <br>"
                        + "cheques compensados", response, "Continuar", "Grabador.jsp");
            }else{
               //compensacion se imprimira todos los cheques a compensar de cada banco con el asunto pediente_compensar
                //entonces se buscara todos id bancos en transacciones que tenga el estaod de pendiete_compensar y se mostrararn
                //los nombre de estos
              String res=nuevas.regresarBancosTransaccionPendientes_compesar();
              EscribirPagina("Seleccione el banco para exportar <br>el archivo de "+ "compensacion<br>"+ res, response, "Continuar", "Grabador.jsp");
            }
        
        }else
        {
             HttpSession sesionOk = request.getSession();
             String usuario=(String) sesionOk.getAttribute("Usuario");
            /****
             * aqui entrara cuando deseamos importar un archivo para realizar alguna actualizacion
             ***/
            int regres=nueva.subirArchivosdeTexto(request);
            Error_Data nuevo=new Error_Data();

            if(regres==1)//este es el proceso para compnesar cheques depositados en otros banco el archvo trae numero de cheque y valor
            {
                if(nueva.procesoCompensacionCheques(usuario,xs.rutaAbsoluta_imagenes+nueva.archivoEncurso))
                {
                    response.setContentType("application/octet-stream");
                    response.setHeader("Content-Disposition","attachment;filename="+"RESULTADO.txt");
                    //String regreso=nueva.regresarnombreTotalArchivosubido();
                    //nuevo.EscribirMensajes("Se cargo el archivo con nombre:"+regreso +"<br>con exito", response,"Continuar" , "Grabador.jsp");
                }else
                {
                    nuevo.EscribirMensajes("Ocurrio un error al cargar el archivo", response,"Continuar" , "Grabador.jsp");
                }

                
            }
            else if(regres==2)
            {
                if(nueva.procesoCompensacion(usuario,xs.rutaAbsoluta_imagenes+nueva.archivoEncurso))
                {

                    String regreso=nueva.regresarnombreTotalArchivosubido();
                    nuevo.EscribirMensajes("Se cargo el archivo con nombre:"+regreso +"<br> con exito", response,"Continuar", "Grabador.jsp");  

                }else
                {
                    nuevo.EscribirMensajes("Ocurrio un error al cargar el archivo", response,"Continuar" , "Grabador.jsp");
                }

               
            }
            else if(regres==0)
            {
                //ocuurio un error
                String regreso=nueva.regresarnombreTotalArchivosubido();
                nuevo.EscribirMensajes("Ocurrio un Error por favor intentelo de nuevo"+regreso, response,"Continuar","Grabador.jsp");
            }
            else if(request.getParameter("bancos1")!=null)///si es para bancos1
            {
                //caundo seleccionemos un banco en la opcion de grabar archivo de compensacion entrar aqui
                Conexion x=new Conexion();
                x.imprimirarchivosparachequescompnesacion(request.getParameter("bancos1"),response);

            }else if(request.getParameter("bancos2")!=null)
            {
                //caundo selecciones un banco para compensacion de cheques
                 Conexion x=new Conexion();
                 x.imprimirarchivosparachequescompnesacion(request.getParameter("bancos2"),response);
            }


        }


    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>


/***
 * mensaje=titulo que aparecera en la pantalla
 * ir_A nombre de donde seguira, conitura, o regresar
 * pagina =link de la pagian
 **/
    public void EscribirPagina(String mensaje, HttpServletResponse response, String Ir_a,String pagina) throws IOException {
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
             */
          
                    String parte1="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
                    + "<html>"
                    + "<head>"
                    + "<title>Banco Central</title>"
                    + "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />"
                    + "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />"
                    + "<script type=\"text/javascript\" src=\"js/jquery-1.3.2.min.js\"></script>"
                    + "<script type=\"text/javascript\" src=\"js/script.js\"></script>"
                    + "<script type=\"text/javascript\" src=\"js/cufon-yui.js\"></script>"
                    + "<script type=\"text/javascript\" src=\"js/arial.js\"></script>"
                    + "<script type=\"text/javascript\" src=\"js/cuf_run.js\"></script>"
                    + "<meta http-equiv==\"Pragma\" content=\"no-cache\"/>"
                    + "<meta http-equiv=\"Expires\" content=\"-1\"/>"
                    + "<meta http-equiv==\"Cache-Control\" content=\"no-store\"/>"
                    + "<meta http-equiv=\"Cache\" content=\"no-cache\"/>"
                    + "<script lenguaje=\"JavaScript\">"
                    + "if(window.history.forward(1) != null)"
                    + "   window.history.forward(1);"
                    + "</script>"
                    + "</head>"
                    + "<body>"
                    + "<div class=\"main\">"
                    + "  <div class=\"header\">"
                    + "   <div class=\"header_resize\">"
                    + "    <div class=\"logo\">"
                    + "     <h1><a href=\"index.jsp\"><span>Siempre</span> a su lado</a></h1>"
                    + "   </div>"
                    + "  <div class=\"menu_nav\">"
                    + "   <ul>"
                    + "    <li class=\"active\"><a href=\""+pagina+"\">" + Ir_a + "</a></li>"
                    + " </ul>"
                    + "</div>"
                    + "<div class=\"clr\"></div>"
                    + "<div class=\"hbg\"><img src=\"images/header_images.jpg\" width=\"400\" height=\"275\" alt=\"\" class=\"fl\" />"
                    + " <div class=\"info fl\">"
                    + "  <h3>Banco Central <br />"
                    + "   Uniendo al mundo </h3>"
                    + " </div>"
                    + " <div class=\"clr\"></div>"
                    + "</div>"
                    + "<div class=\"clr\"></div>"
                    + "</div>  </div>"
                    + " <div class=\"content\">"
                    + "  <div class=\"content_resize\">"
                    + " <div class=\"article\">"
                    + "   <center><h2><span>" + mensaje ;

                    Conexion nueva=new Conexion();
                    String resultado=nueva.regresarTodoslosnombresbancosexistentes();


                    String partefinal="</span></h2></center>"
                    + "  <div class=\"clr\"></div>"
                    + "  </div>"
                    + "     <div class=\"sidebar\">"
                    + "    <div class=\"gadget\">"
                    + "     <h2 class=\"star\"><span>Nuestro</span> Menu</h2>"
                    + "    <div class=\"clr\"></div>"
                    + "   <ul class=\"sb_menu\">"
                    + "    <li class=\"active\"><a href=\""+pagina+"\">" + Ir_a + "</a></li>"
                    + "  <br> </br>  "
                    + "</ul></div></div>"
                    + "<div class=\"clr\"></div>"
                    + "</div></div>"
                    + "<div class=\"footer\">"
                    + " <div class=\"footer_resize\">"
                    + "  <p class=\"lf\">&copy; Copyright <a href=\"#\">MyWebSite</a>.</p>"
                    + " <p class=\"rf\">Layout by I <a href=\"http://www.iwebsitetemplate.com/\">Website Templates</a></p>"
                    + "<div class=\"clr\"></div>"
                    + "</div></div></div>"
                    + "</body></html>";

                    String totla=parte1+resultado+partefinal;

                      out.println(totla);
        }catch(Exception xs)
        {
            System.out.println("***********generado en la clase ERROR_DATA metodo EscribirMansaje 4 parametros");
            System.out.println(xs.getMessage());
        }
        finally {
            out.close();
        }
    }
}
